% Copyright 2020 Makani Technologies LLC
%
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
%
%      http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.

function [mode_id, mode_label] = get_flight_mode_labels
% get_flight_mode_labels -- all possible flight modes in RPX.
% [mode_id, mode_label] = get_flight_mode_labels;
%
% Output Values-
% mode_id:    [n x 1] Numeric (int32) flight mode identifiers.
% mode_label: [n x 1] Cell array with corresponding flight mode descriptors.
%

% Set defaults.
mode_id    = int32([0:1:16]);
mode_label = {'PilotHover',             ...
              'Perched',                ...
              'HoverAscend',            ...
              'HoverPayOut',            ...
              'HoverFullLength',        ...
              'HoverAccel',             ...
              'TransIn',                ...
              'CrosswindNormal',        ...
              'CrosswindPrepTransOut',  ...
              'HoverTransOut',          ...
              'HoverReelIn',            ...
              'HoverDescend',           ...
              'OffTether',              ...
              'HoverTransformGsUp',     ...
              'HoverTransformGsDown',   ...
              'HoverPrepTransformGsUp', ...
              'HoverPrepTransformGsDown'...
              };

% Assert mode id and label arrays are same size.
assert(isequal(size(mode_id), size(mode_label)), 'Output arrays of dissimilar size.');

% Output column arrays.
mode_id    = mode_id(:);
mode_label = mode_label(:);
